package com.dubbo.demo.interceptor;

import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.ws.rs.WebApplicationException;
import javax.ws.rs.ext.WriterInterceptor;
import javax.ws.rs.ext.WriterInterceptorContext;

/**
 * @author liufl
 * @version 创建时间：2017年7月25日 下午6:01:19
 * Interceptor主要用于访问和修改输入与输出字节流，例如，手动添加GZIP压缩：
	1.ReaderInterceptor 拦截 MessageBodyReader.readFrom 可以用来实现校验
	2.WriterInterceptor  拦截 MessageBodyWriter.writeTo 可以用来实现数据压缩
 */
public class GZIPWriterInterceptor implements WriterInterceptor {

    @Override
    public void aroundWriteTo(WriterInterceptorContext context)
                    throws IOException, WebApplicationException {
        OutputStream outputStream = context.getOutputStream();
        context.setOutputStream(new GZIPOutputStream(outputStream));
        context.proceed();
    }

}

